Software-defined networking (SDN) means a user-oriented network in which a user has control authority regardless of a basic network device such as a router or a switch, etc. and a separate software controller controls a flow of traffic.
OpenFlow is one variety of SDN technology and defines an interface connecting a hardware such as a router and a controller operating in a network operating system (OS), and is a protocol for separating a control plane for controlling how to transmit a data packet through a network from a physical network and interacting with a data plane for data transmission.
An OpenFlow switch may have a plurality of flow tables which are connected in a pipeline manner such that flexible parallel processing can be made possible and efficiency and flexibility can be provided to the OpenFlow switch.
When packets are processed through the pipeline, actions instructed by respective flow tables constituting the pipeline are stored in an action list, and finally constitute an action set at the last flow table of the pipeline. Also, meta-data messages are exchanged among the respective flow tables.
When a packet is inputted to a switch and passes through the respective flow tables, match fields and the action set are updated based on instructions defined in the respective flow tables for each flow.
The action may be executed immediately according to the instruction of each flow table, or may be accumulated in the action set. In the latter case, the accumulated action set is executed lastly after the packet passes all flow tables.
Meanwhile, an output port action for the pipeline processing is an action of finally forwarding a packet to an external entity. In this reason, once the output port action is performed, any further actions other than packet output cannot be performed on the packet. That is, any further action cannot be linked based on information on the output port action.
Also, a group table utilized for multicast operation transmitting packets through a plurality of output ports also has the same problem. Once a packet is forwarded to the plurality of output ports, any further actions other than packet output cannot be performed on the packet. That is, any further action cannot be linked based on an execution result of the group table.